/**
 * 文件名称:  HibernateDaoImpl.java
 * 文件序号:  序号
 * 内容描述:  文件简单描述，多行换行书写
 * 版权声明:  山东鸿蝶信息技术有限公司
 * 创建用户:  zhangkai
 * 创建日期:  2016/12/20 20:22
 * 修改用户:  无
 * 修改日期:  无
 * 修改说明:  无
 * 文件版本:  V1.0
 * 文件路径:
 */

package com.hongdee.common.dao.impl;


import com.hongdee.common.dao.IHibernateDao;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 名  称:HiberanteDaoImpl
 * 类  型: class
 * 描  述: 用一句话描述类的作用
 * 路  径:com.hongdee.dao
 * 作  者:zhangkai
 * 日  期:2016/12/20 20:22
 */
@Service
public class HibernateDaoImpl<T> implements IHibernateDao<T> {

    private Session session;
    @Resource
    private SessionFactory sessionFactory;


    protected Session getSession() {
        return this.sessionFactory.openSession();
    }


    @Override
    public void save(T entity) {
        session = this.getSession();
        session.beginTransaction();
        session.save(entity);
        session.getTransaction().commit();
        session.close();

    }

    @Override
    public List queryByHql(String hql) {
        session = this.getSession();
        Query qc = session.createQuery(hql);
        return qc.list();

    }
}
